/**
 * @name Find public member functions
 * @description Lists all public member functions with their class, return type, and parameters
 * @kind table
 * @tags cpp
 *       functions
 *       classes
 */

import cpp

from Field func, Class c, string filepath
where
  func.getDeclaringType() = c and
  not func.isPrivate() and
  filepath = func.getFile().getAbsolutePath() and
  filepath.matches("%/src/%") and
  not filepath.matches("%/sample_package/%") and
  not filepath.matches("%/generated/%") and
  not filepath.matches("%/RNOHCorePackage/%") and
  not filepath.matches("%/third-party/%") and
  not func.isCompilerGenerated()
select filepath, c.getName(), func.getName(), func.getType().toString()
